package IPrototipo.Funcionalidades.BuscarCompetencia;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import javax.swing.AbstractAction;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import java.awt.FlowLayout;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.ComponentOrientation;
import java.awt.event.ActionEvent;
import java.util.Vector;

import javax.swing.SwingConstants;

import IPrototipo.ActionListeners.AltaCompetenciaAction;
import IPrototipo.ActionListeners.VerCompetenciaAction;
import IPrototipo.Entidades.Competencia;
import IPrototipo.Funcionalidades.Menues.MyTableModel;
import IPrototipo.Funcionalidades.Menues.PanelGeneral;
import IPrototipo.Funcionalidades.Menues.FrameUsuarioAutenticado;


public class MisCompetencias extends PanelGeneral {

	
	private static final long serialVersionUID = 1L;
	private JTextField txtNombre;
	private JTable table;
	private JTextField txtUsuario;
	private JButton btnBuscarCompetencia;
	
	//ELEMENTOS!!
	private String[] columnNamesCompetencia={"Nombre","Usuario","Estado","Modalidad","Deportes"};
	private Vector<Competencia> competenciasBuscadas= getFramePerteneciente().getCompetenciasEnBD();
	private Object[][] stringCompetencias;
	private JComboBox<String> cbDeporte;
	private JComboBox<String> cbEstado;
	private JComboBox<String> cbModalidad;

	//ATRIBUTOS!!
	private String critNombre;
	private String critDeporte;
	private String critUsuario;
	private String critEstado;
	private String critModalidad;
	
	

	public MisCompetencias(FrameUsuarioAutenticado framePerteneciente) {
		
		super(framePerteneciente);
		setPreferredSize(new Dimension(800, 500));
		setAlignmentY(1.0f);
		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
	
		setNombreCU("Mis Competencias");
		
		JPanel panelCriterioBusqueda = new JPanel();
		panelCriterioBusqueda.setLayout(new BoxLayout(panelCriterioBusqueda, BoxLayout.X_AXIS));
		
		JPanel criterioBusqueda = new JPanel();
		criterioBusqueda.setOpaque(false);
		add(criterioBusqueda);
		
		criterioBusqueda.setMinimumSize(new Dimension(10, 130));
		criterioBusqueda.setAlignmentY(0.2f);
		criterioBusqueda.setBorder(new TitledBorder(null, "Criterio de B\u00FAsqueda", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		criterioBusqueda.setLayout(new BoxLayout(criterioBusqueda, BoxLayout.Y_AXIS));
		criterioBusqueda.setMaximumSize(new Dimension(2000,130));
		
		JPanel panel1 = new JPanel();
		panel1.setOpaque(false);
		FlowLayout flowLayout_1 = (FlowLayout) panel1.getLayout();
		flowLayout_1.setAlignment(FlowLayout.LEFT);
		panel1.setMaximumSize(new Dimension(2000,60));
		criterioBusqueda.add(panel1);

		
		JLabel lblNombre = new JLabel("Nombre: ");
		lblNombre.setHorizontalAlignment(SwingConstants.RIGHT);
		panel1.add(lblNombre);
		lblNombre.setPreferredSize(label);
		
		txtNombre = new JTextField();
		panel1.add(txtNombre);
		txtNombre.setPreferredSize(datos);
		
		
		Component horizontalStrut = Box.createHorizontalStrut(20);
		panel1.add(horizontalStrut);
		
		JLabel lblDeporte = new JLabel("Deporte: ");
		lblDeporte.setHorizontalAlignment(SwingConstants.RIGHT);
		panel1.add(lblDeporte);
		lblDeporte.setPreferredSize(label);
		
		
		cbDeporte = new JComboBox<String>();
		panel1.add(cbDeporte);
		cbDeporte.setPreferredSize(datos);
		
		Component horizontalStrut_1 = Box.createHorizontalStrut(20);
		panel1.add(horizontalStrut_1);
		
		JLabel lblUsuario = new JLabel("Usuario: ");
		lblUsuario.setHorizontalAlignment(SwingConstants.RIGHT);
		panel1.add(lblUsuario);
		
		txtUsuario = new JTextField();
		txtUsuario.setEditable(false);
		txtUsuario.setText("#NombreUsuario");
		txtUsuario.setPreferredSize(datos);
		panel1.add(txtUsuario);
		
		
		
		JPanel panel2 = new JPanel();
		panel2.setOpaque(false);
		FlowLayout flowLayout_2 = (FlowLayout) panel2.getLayout();
		flowLayout_2.setAlignment(FlowLayout.LEFT);
		panel2.setMaximumSize(new Dimension(2000,60));
		criterioBusqueda.add(panel2);
		
		JLabel lblEstado = new JLabel("Estado: ");
		lblEstado.setHorizontalAlignment(SwingConstants.RIGHT);
		panel2.add(lblEstado);
		lblEstado.setPreferredSize(label);
		
		cbEstado = new JComboBox<String>();
		panel2.add(cbEstado);
		cbEstado.setPreferredSize(datos);
		
		Component horizontalStrut_3 = Box.createHorizontalStrut(20);
		panel2.add(horizontalStrut_3);
		
		JLabel lblModalidad = new JLabel("Modalidad: ");
		lblModalidad.setHorizontalAlignment(SwingConstants.RIGHT);
		panel2.add(lblModalidad);
		lblModalidad.setPreferredSize(label);

		cbModalidad = new JComboBox<String>();
		panel2.add(cbModalidad);
		cbModalidad.setPreferredSize(datos);
		
		Component horizontalStrut_4 = Box.createHorizontalStrut(20);
		panel2.add(horizontalStrut_4);
		
		btnBuscarCompetencia = new JButton("Buscar Competencia");
		panel2.add(btnBuscarCompetencia);
		btnBuscarCompetencia.setPreferredSize(new Dimension(165, 30));
		btnBuscarCompetencia.addActionListener(new buscarAction());
		
		Component verticalStrut = Box.createVerticalStrut(20);
		add(verticalStrut);
		
		JPanel panelCriterios = new JPanel();
		panelCriterios.setOpaque(false);
		FlowLayout flowLayout_3 = (FlowLayout) panelCriterios.getLayout();
		flowLayout_3.setAlignment(FlowLayout.LEFT);
		add(panelCriterios);
		
		JLabel lblCriteriosUtilizados = new JLabel("Criterios Utilizados: ");
		panelCriterios.add(lblCriteriosUtilizados);
		lblCriteriosUtilizados.setHorizontalTextPosition(SwingConstants.LEADING);
		
		JPanel panelResultados = new JPanel();
		panelResultados.setOpaque(false);
		add(panelResultados);
		panelResultados.setLayout(new BoxLayout(panelResultados, BoxLayout.Y_AXIS));
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBorder(new TitledBorder(null, "Resultados", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panelResultados.add(scrollPane);
		
		table = new JTable();
		
			
		//competenciasToString();
		table.setModel(new MyTableModel(columnNamesCompetencia, stringCompetencias));
		table.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
		scrollPane.setViewportView(table);
		table.setRowSelectionAllowed(true);
		table.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
		
		JPanel panelDarAltaCompetencia = new JPanel();
		panelDarAltaCompetencia.setOpaque(false);
		FlowLayout flowLayout = (FlowLayout) panelDarAltaCompetencia.getLayout();
		flowLayout.setAlignment(FlowLayout.LEFT);
		add(panelDarAltaCompetencia);
		
		JLabel lbResultadosInesperados = new JLabel("\u00BFNo son los Resultados esperados?");
		panelDarAltaCompetencia.add(lbResultadosInesperados);
		
		JButton btnDarAltaCompetencia = new JButton("Dar Alta Competencia Deportiva");
		panelDarAltaCompetencia.add(btnDarAltaCompetencia);
		btnDarAltaCompetencia.addActionListener(new AltaCompetenciaAction(framePerteneciente));
		
		Component verticalStrut_1 = Box.createVerticalStrut(20);
		add(verticalStrut_1);
		
		JPanel panelExtends = new JPanel();
		panelExtends.setOpaque(false);
		add(panelExtends);
		
		JButton btnVerCompetencia = new JButton("Ver Competencia");
		panelExtends.add(btnVerCompetencia);
		btnVerCompetencia.setPreferredSize(btnDarAltaCompetencia.getPreferredSize());
		//TODO EN VEZ DE NULL HAY QUE PASAR LA COMPETENCIA SELECCIONADA
		btnVerCompetencia.addActionListener(new VerCompetenciaAction(getFramePerteneciente(),null));
		
		Component glue = Box.createGlue();
		add(glue);
		

	}
	
	class buscarAction extends AbstractAction{


		private static final long serialVersionUID = 1L;

		public void actionPerformed(ActionEvent arg0) {
			//Hay que ver bien esto
			
			//competenciasToString();
			//table.setModel(new MyTableModel(columnNamesCompetencia, stringCompetencias));
			
		}
		
	}

}

